package com.ts.animal.dao;

import com.ts.animal.domain.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * bs_base_station 基站 扩展
 *
 * @author bobby
 * @email bobby@126.com
 * @date 2022-09-02 16:09:19
 */
@Mapper
public interface ExBaseStationDao {

    //批量新增基站同步的rfid数据
    int batchSaveRfidData(@Param("list") List<RfidSyncDataDO> rfidSyncDataDOs);

    //批量新增基站同步的rfid数据
    int batchSaveRfidDataHistory(@Param("list") List<RfidSyncDataDO> rfidSyncDataDOs);

    //批量 有则不处理  无则新增基站信息
    int batchSaveBaseStation(@Param("list") List<BaseStationDO> baseStations);

    //批量 有则不处理  无则新增基站信息
    int batchSaveRfidSyncOriginalData(@Param("list") List<RfidSyncOriginalDataDO> rfidSyncOriginalDataDOs);


    //01   耳标数据放入标签表
    int batchInsertRfidLabel(@Param("list") List<RfidLabelDO> rfidLabelDOs);

    //02   查询插入新数据的数量
    int newRfidLabelDataCount();

    //03   插入用户标签使用情况数据
    int batchInsertLabelUseInfo(@Param("useStatusNot") String useStatusNot, @Param("importId") int importId);

    //04   更新标签使用状态
    int updateLabelUseStatus(
            @Param("useStatusYes") String useStatusYes,
            @Param("useStatusNot") String useStatusNot,
            @Param("useStatusTest") String useStatusTest,
            @Param("testDeptIds") String testDeptIds);

    //删除历史数据 date之前的数据
    int batchDeleteRfidDataHistory(Date date);

    List<Map<String, Object>> list(Map<String, Object> map);

    List<BaseStationDO> deptSelectBaseStationList(Map<String, Object> map);

    int clearRelation(long deptId);

    int relateDept(@Param("deptId") long deptId, @Param("list") String[] baseStationNumList);

    List<RfidSyncDataDO> rfidSyncDataList(Map<String, Object> map);

    //5天内最小的同步数据id
    int fixDayMinSyncId();

    List<ExRfidSyncDataDO> getNotWarnSyncData(int lastMaxId);

    int clearDeptLabel(long deptId);
}
